package tp1POO.Modelo;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.PrimaryKeyJoinColumn;

@Entity
@PrimaryKeyJoinColumn(name="cpf")
public class Funcionario extends Pessoa implements Serializable
{
	public enum Cargo {

		Auxiliar ( "Auxiliar" ),
		Administrador ( "Administrador" ), 
		Vendedor ( "Vendedor" );

		private String cargo;

		private Cargo(String parCargo) {
			this.cargo = parCargo;
		}

		@Override
		public String toString() {
			return cargo;
		}
	}

    public Funcionario() {
    }

        

	/** Construtor com as especifições exigidas.
	 *
	 * @param nome
	 * @param cpf
	 * @param cargo
	 */
	public Funcionario(String nome, String cpf, Cargo cargo){
		this.cargo = cargo;
		this.setCpf(cpf);
		this.setNome(nome);
	}
	/** Construtor com apenas uma especificação, possibilitando a criação de um
	 * funcionário apenas com o cargo
	 * @param parCargo cargo do funcionario
	 */
	public Funcionario(Cargo parCargo){
		this.cargo = cargo;
	}
	/** Método para verificação do cargo do funcionário
	 * @return String - Cargo do funcionário
	 */
	public Cargo getCargo() {
		return cargo;
	}
	/** Método para setar valor do cargo do funcionário
	 * @param cargo
	 */
	public void setCargo(Cargo cargo) {
		this.cargo = cargo;
	}
	/**
	 * Ajusta o login do funcionario
	 * @param login Login do funcionario
	 */
	public void setLogin(String login) {
		this.loginUsuario = login;
	}
	/**
	 * Obtem o login do funcionario
	 * @return o login do funcionario
	 */
	public String getLogin() {
		return loginUsuario;
	}
	/**
	 * Ajusta a senha do funcionario
	 * @param senha Senha do funcionario
	 */
	public void setSenha(String senha) {
		this.senha = senha;
	}
	/**
	 * Obtem a senha do usuario
	 * @return senha do usuario
	 */
	public String getSenha() {
		return senha;
	}

	@Column(nullable=false,length=50)
	@Enumerated(EnumType.STRING)
	private Cargo cargo;
	@Column(nullable=false, length=15)
	private String senha;
	@Column(nullable=false, name="login_u", length=20)
	private String loginUsuario;

}
